﻿// 功能：通知消息的结构
// 描述：
// 作者：温伟鹏
// 日期：2010/9/2 10:30:09

using System;
using System.Runtime.InteropServices;

namespace MeizuSDK.Core
{
    /// <summary>
    /// 通知消息的结构
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    public struct MzUserNotification
    {
        /// <summary>
        /// 获取或设置通知的动作类型
        /// </summary>
        public uint ActionFlags;

        /// <summary>
        /// 获取或设置默认按键的图标类型
        /// </summary>
        public uint DefaultIconType;

        /// <summary>
        /// 获取或设置自定义按键的图标类型
        /// </summary>
        public uint CustomIcontype;

        /// <summary>
        /// 获取或设置执行文件路径名
        /// </summary>
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 260)]
        public string szAppPath;

        /// <summary>
        /// 获取或设置执行文件参数，用户点默认按钮后/或任务列表的默认按键，以此命令行方式回调程序
        /// </summary>
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 260)]
        public string szAppDefaultArgs;

        /// <summary>
        /// 获取或设置执行文件参数，用户点击自定义按键后，以此命令行方式回调程序
        /// </summary>
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 260)]
        public string szAppCustomArgs;

        /// <summary>
        /// 获取或设置对话框标题
        /// </summary>
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 64)]
        public string szTiTle;

        /// <summary>
        /// 获取或设置提示/对话框的内容
        /// </summary>
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 512)]
        public string szTip;

        /// <summary>
        /// 获取或设置对话框的默认按钮标题
        /// </summary>
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 64)]
        public string szDefaultBtnName;

        /// <summary>
        /// 获取或设置对话框的自定义按钮标题（任务列表忽略）
        /// </summary>
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 64)]
        public string szCustomBtnName;

        /// <summary>
        /// 获取或设置任务栏上的图的路径
        /// </summary>
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 260)]
        public string szImageSmall;

        /// <summary>
        /// 获取或设置任务列表上或对话框的图标路径
        /// </summary>
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 260)]
        public string szImageLarger;

        /// <summary>
        /// 获取或设置声音文件路径, MUN_SOUND标志有效
        /// </summary>
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 260)]
        public string szSound;

        /// <summary>
        /// 获取或设置默认声音文件的路径，MUN_SOUND标志有效，当声音文件无效或损坏的时候播放默认声音
        /// </summary>
        [MarshalAsAttribute(UnmanagedType.ByValTStr, SizeConst = 260)]
        public string szDefSound;

        /// <summary>
        /// 获取或设置声音播放的时间周期以秒为单位，0表示播放完这首音乐，其他数字表示播放的时间
        /// </summary>
        public uint dwPlaySoundPeriod;

        /// <summary>
        /// 获取或设置震动次数，MUN_VIBRATE标志有效，0表示随音乐的长度震动。
        /// </summary>
        public uint dwVibratePeriod;

        /// <summary>
        /// 获取或设置任务栏小图标是否闪烁
        /// </summary>
        public int bIsIconBlink;

    }
}
